combit List & Label 29 - .NET Hilfe
Einführung in die Programmierung / Tutorial / Web Reporting Leitfaden / Verwendung des Ad-hoc Designers
In diesem Thema
    Verwendung des Ad-hoc Designers
    In diesem Thema

     

    Tipp

    Im Folgenden werden die Konzepte des Ad-hoc Designers sowie die notwendigen Schritte zu dessen Implementierung und Tipps & Tricks aufgezeigt.

    Eine vollständige Implementierung und Verwendung des Ad-hoc Designers können Sie im mitgelieferten ASP.NET Beispielprojekt "Ad-hoc Designer Sample" einsehen. Weiterführende Details finden sich auch in den beiden Assemblies combit.Reporting.AdhocDesign und combit.Reporting.AdhocDesign.Web.

     

     Konzepte

    Der Ad-hoc Designer ist kein Ersatz für den Web Designer

    Er ist eine komplett browserbasierte Anwendung (HTML+Javascript), die es Ihnen ermöglicht, einfache Berichte wie einfache Tabellen oder Diagramme sehr schnell zu entwerfen. Es bietet nur die wichtigsten Funktionen des kompletten List & Label Designers, erfordert aber keine Installation auf dem Client-Computer wie der Web Designer (siehe auch Verwendung des Web Designers). Darüber hinaus bietet es eine vereinfachte Benutzeroberfläche, die auf jedem modernen Gerät, Betriebssystem und Browser einsetzbar ist.

    Die Projekte des Ad-hoc Designers werden in einem speziellen Dateiformat gespeichert

    Eine mit dem Ad-hoc Designer erstellte Projektdatei kann wie ein reguläres List & Label Projekt zum Exportieren oder Drucken verwendet werden. Sie können es auch im Desktop Designer öffnen, um die erweiterten Eigenschaften anzupassen, ein mit dem Desktop Designer erstelltes oder modifiziertes Projekt kann jedoch nicht in den Ad-hoc Designer geladen werden.

     

    Jede Instanz des Ad-hoc Designers verwendet eine eigene Session

    Jedes Mal, wenn ein Benutzer den Ad-hoc Designer im Browser öffnet, wird ein IAdhocDesignerSession-Objekt auf dem Server erstellt, das diese bestimmte Instanz des Designers verwaltet. Dieses Session-Objekt lädt das Projekt, wenn der Designer es auf dem Client benötigt und speichert das Projekt, wenn der Client eine Projektdatei an den Server sendet, um es zu speichern. In der Regel gibt es also für jeden Browser-Tab, auf dem der Ad-hoc Designer geladen ist, eine Ad-hoc Designer-Session auf dem Server, die so lange besteht, bis der Designer auf dem Client geschlossen wird.

    Um den Ad-hoc Designer in Ihre Anwendung zu integrieren, verbinden Sie die Session mit dem Rest Ihrer Anwendung, um Operationen wie das Laden und Speichern des Projekts oder die Erstellung der Datenquelle zu übernehmen. 

     

    Der Ad-hoc Designer ist eine Anwendung in Ihrer Anwendung

    Er basiert auf dem ASP. NET MVC-Framework, hat aber seine eigenen Routes und Controller, die unabhängig von Ihrer eigenen Anwendung sind (werden oft nicht benötigt). Bitte beachten Sie, dass es sich nicht um eine Komponente handelt, die Sie auf Ihrer Internetseite (oder Ansicht) einbetten können. Der Ad-hoc Designer wird durch Navigation (Umleitung) zu einer speziellen URL geöffnet, d. h. er verwendet immer die ganze Seite. Wenn Sie es als Teil einer anderen Seite anzeigen möchten, müssen Sie es in ein iframe laden.

     

     Wie wird der Ad-hoc Designer in die eigene Anwendung hinzugefügt (in 3 Schritten)

    Schritt 1: Hinzufügen der notwendigen Abhängigkeiten

    Um den Ad-hoc Designer in ein eigenes ASP.NET Projekt zu integrieren, müssen Sie zunächst die folgenden NuGet-Pakete hinzufügen:

    • Newtonsoft.Json (13.0.1 oder neuer)
    • Microsoft.AspNet.Mvc (5.2.7 oder neuer)
    • Microsoft.AspNet.Web.Optimization (1.1.3 oder neuer)
    • RazorGenerator.Mvc (2.4.9 oder neuer)

    Und dann müssen noch die folgenden Referenzen der List & Label Assemblies hinzugefügt werden:

    • combit.ListLabel29.dll
    • combit.ListLabel29.AdhocDesign.dll
    • combit.ListLabel29.AdhocDesign.Web.dll
    Das RazorGenerator.Mvc Paket fügt die Datei RazorGeneratorMvcStart.cs zum Projekt hinzu. Bitte löschen Sie diese Datei.

     

    Schritt 2: Konfigurationen durchführen

    Die weitere Vorgehensweise unterscheidet sich bei .NET 6/.NET 7/.NET 8 und .NET 4.8.

     

    .NET 6/.NET 7/.NET 8:

    Fügen Sie in der Datei startup.cs die folgenden Zeilen am Ende der Configure-Methode hinzu:

    ...
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        // do some other stuff here
        // ...
    
        app.UseAdhocDesigner(c => { });
    }
    ...
    

    Und in der ConfigureServices-Methode fügen Sie noch diese Zeile hinzu:

    ...
    public void ConfigureServices(IServiceCollection services)
    {
        // do some other stuff here
        // ...
    
        services.AddAdhocDesigner();
    }
    ...
    

     

    .NET 4.8:

    Der Ad-hoc Designer basiert auf ASP. NET MVC. Wenn Ihre Anwendung gestartet wird, müssen Sie das Routing und eine andere Konfiguration des Ad-hoc Designers einrichten:

    • AdhocWebDesigner.RegisterRoutes() aufrufen bevor (!) die eigenen Routes registriert werden (siehe auch die Datei RouteConfig.cs)
    • AdhocWebDesigner.Setup(...) während des Startens der Anwendung aufrufen (siehe auch die Application_Start() Methode in der Datei global.asax). Es sind viele Optionen pro Sitzung definiert, aber die globalen Optionen können mit diesem Aufruf konfiguriert werden

     

    Schritt 3: Öffne den Ad-hoc Designer

    Wie bereits oben erwähnt, gibt es auf dem Server für jeden aktiven Ad-hoc Designer auf einem Client ein IAdhocDesignerSession-Objekt. Bevor der Ad-hoc Designer auf dem Client geöffnet werden kann, müssen Sie ein neues Objekt vom IAdhocDesignerSession-Interface anlegen.

    Wir empfehlen Ihnen, einen der im Lieferumfang enthaltenen Ad-hoc-Session-Typen zu verwenden, die das Laden & Sichern für Sie übernehmen:

    • AdhocDesignerSession.FromFile(...) aufrufen, um eine Ad-hoc Designer Session für eine Projektdatei aus dem Dateisystem zu erstellen
    • AdhocDesignerSession.FromRepositoryItem(...) aufrufen, um eine Ad-hoc Designer Session für ein Element aus dem Repository zu erstellen

    Zuletzt rufen Sie this.RedirectToAdhocDesigner(session) in einer Aktion des MVC-Controllers auf, um den Request auf einen neuen Ad-hoc Designer umzuleiten (der Namsespace combit.Reporting.AdhocDesign.Web wird benötigt, um diese Extension-Methode verfügbar zu machen). Ein Beispiel hierzu finden Sie im mitgelieferten ASP.NET Beispielprojekt "C# Ad-hoc Designer Sample" unter HomeController.OpenNewProject().

     

     Tipps & Tricks

    Wenn mehr Kontrolle beim Erzeugen, Laden oder Speichern eines Projektes benötigt wird

    Erstellen Sie einen eigenen Ad-hoc Designer Sessiontype und lassen diesen von AdhocDesignerSessionBase. erben. Viele Methoden sind virtuell und können übersteuert werden, z. B. wenn die Standardwerte für ein neues Projekt angepasst werden sollen.

    Wenn mehr Kontrolle über die Lebenszeit und die Verwaltung der Ad-hoc Designer Sessions benötigt wird

    Erstellen Sie eine eigene Implementierung der Schnittstelle IAdhocDesignerSessionManager und übergeben Sie diese an die Methode AdhocDesignerWeb.Setup(...) (siehe Schritt 3)